#include "gsl_function_setup.h"

double gsl_f(const gsl_vector *v, void *params)
{
  Function *func = (Function *)params;

  int N = func->NInput; // get number of degrees of freedom

  cout << "stride " << v->stride << endl;
  cout << "NInput " << N << endl;
  cout << "size " << v->size << endl;

  exit(1);

  double* sol = v->data;

  return 8.2;
}


void gsl_df(const gsl_vector *v, void *params, gsl_vector *df)
{
  Function *func = (Function *)params;
}


void gsl_fdf(const gsl_vector *v, void *params, double *f, gsl_vector *df)
{
  *f = gsl_f(v, params);
  gsl_df(v, params, df);
}